for (i = 0; parent_commits[i] != NULL; i++)
{
const char *parent_commit = parent_commits[i];
- g_printerr ("Marking commit %s as partial\n", parent_commit);
- if (!ostree_repo_mark_commit_partial (repo, parent_commit, TRUE, error))
+ OstreeRepoCommitState state;
+ if (!ostree_repo_load_commit (repo, parent_commit, NULL,
+ &state, error))
return FALSE;
+ if ((state & OSTREE_REPO_COMMIT_STATE_PARTIAL) == 0)
+ {
+ g_printerr ("Marking commit as partial: %s\n", parent_commit);
+ if (!ostree_repo_mark_commit_partial (repo, parent_commit, TRUE, error))
+ return FALSE;
+ }
}
}
}
# fsck marks commits partial
# https://github.com/ostreedev/ostree/pull/1533
for d in $(find bare-repo/objects/ -maxdepth 1 -type d); do
- (find ${d} -name '*.file' || true) | head -20 | xargs rm -vf
+ (find ${d} -name '*.file' || true) | head -20 | xargs rm -f
done
-if ostree --repo=bare-repo fsck; then
+if ostree --repo=bare-repo fsck |& tee fsck.txt; then
fatal "fsck unexpectedly succeeded"
fi
+assert_streq $(grep -cE -e 'Marking commit as partial' fsck.txt) "1"
ostree --repo=bare-repo pull origin ${host_nonremoteref}
# Don't need a full fsck here
ostree --repo=bare-repo ls origin:${host_nonremoteref} >/dev/null
assert_not_reached "fsck unexpectedly succeeded"
fi
assert_file_has_content_literal err.txt "Object missing:"
-assert_file_has_content_literal err.txt "Marking commit $rev as partial"
+assert_file_has_content_literal err.txt "Marking commit as partial: $rev"
assert_has_file repo/state/${rev}.commitpartial
echo "ok missing file"
assert_not_reached "fsck unexpectedly succeeded"
fi
assert_file_has_content_literal err.txt "Corrupted file object;"
-assert_file_has_content_literal err.txt "Marking commit $rev as partial"
+assert_file_has_content_literal err.txt "Marking commit as partial: $rev"
assert_has_file repo/state/${rev}.commitpartial
echo "ok corrupt file"